using System;
using Clandestine.Engines.Field;

namespace Shlick
{
	public abstract class Tool
	{
		public abstract string Name { get; }
		public virtual event ToolCompleteHandler ToolComplete;
        
        public virtual void MouseDownLeft(int mouseX, int mouseY, int tileX, int tileY)
        {
        }
        
        public virtual void MouseUpLeft(int mouseX, int mouseY, int tileX, int tileY)
        {
        }
        
        public virtual void MouseDownRight(int mouseX, int mouseY, int tileX, int tileY)
        {
        }
        
        public virtual void MouseUpRight(int mouseX, int mouseY, int tileX, int tileY)
        {
        }
        
        public virtual void MouseMove(int mouseX, int mouseY, int tileX, int tileY)
        {
        }
        
        public virtual void Activated(params object[] args)
        {
        }
        
        public virtual void Deactivated()
        {
        }
       
       	public virtual void LayerChanged(Layer oldLayer)
       	{
       	}
       	
       	public virtual void LevelChanged(Level oldLevel)
       	{
       	}
	}
}

